1. Technical Field
The present invention relates in general to motors, and, in particular, to the control of motors for disk drives. Still more particularly, the present invention relates to a system, method, and program product for controlling the commutation timing of a motor, such as a disk drive motor, that has a commutation profile characterized by an exponentially decaying curve.
2. Description of the Related Art
Hard disk drives for data processing systems are driven by motors. The operations of hard disk drives are controlled by a disk drive controller, and the disk drive controller controls a motor driver. The motor driver either externally controls the commutation using an external commutation sequence or internally controls the commutation using self-commutation, which utilizes a back electromotive force detection circuit in the motor driver that receives feedback from the motor windings. When the motor is first starting-up, self-commutation is not available since the motor is not moving fast enough. Therefore, the motor driver must externally control (i.e., via open-loop control) the motor using a commutation sequence provided by a microprocessor of the disk drive controller.
During the initial part of start-up (i.e., before self-commutation is available), the motor driver externally controls the commutation and therefore the speed and acceleration of the motor. The motor driver circuit typically comprises six field-effect transistors (FETs), which are controlled by a xe2x80x9cpre-driverxe2x80x9d Application Specific Integrated Circuit (ASIC). The pre-driver switches through six commutation states by individually energizing pairs of the six FETs. A commutation period is the duration of time that the commutation driver maintains a particular commutation state before switching to another commutation state.
A motor that is starting up is ideally characterized by a velocity profile that is generally linear. As operational time of the motor elapses, the speed of the motor linearly increases. The speed of the motor in relationship to elapsed operational time is characterized as a linear equation. The commutation period is inversely related to the speed of the motor (i.e., in the form y=1/x) and therefore exponentially decreases as motor speed increases. An exponential equation cannot be efficiently implemented by a processor, such as a processor in the disk drive controller or the motor controller.
A polynomial equation has therefore been used by processors to approximate ideal commutation period values over the commutation curve (i.e., the exponentially decaying curve). For example, a fourth order polynomial has been used. The ideal commutation curve can be described as having two portions: the first portion comprises the beginning portion of the curve including the xe2x80x9celbowxe2x80x9d of the curve while the second portion is the remainder of the curve following the xe2x80x9celbowxe2x80x9d. One problem with polynomial approximation is that if coefficients are selected so that the second portion of the ideal commutation curve (i.e., the portion after the xe2x80x9celbowxe2x80x9d of the curve) is approximated well, the first portion of the curve (i.e., the portion before and including the xe2x80x9celbowxe2x80x9d of the curve) is not approximated well. If the polynomial coefficients are changed to better approximate the first portion of the commutation curve, then the approximation of the second portion of the commutation curve becomes worse. The reason that a polynomial is unable to accurately approximate both the first and second portions of the commutation curve is that the two equations are of different types.
The back-electromotive force (BEMF) detection circuit provides feedback to enable the motor controller to determine when the motor should be commutated (i.e., detects movement of motor rotor""s magnetic poles). Some BEMF detection circuits have high BEMF sensitivities that require lower BEMF amplitudes in order to function reliably. Such circuits can employ self-commutation at a lower motor speed (i.e., lower critical BEMF speed). Other BEMF detection circuits have low BEMF sensitivity that require larger BEMF amplitudes to function reliably. In this case, the motor must be accelerated to a higher speed (i.e., higher critical BEMF speed) before self-commutation can be employed. In order for an open-loop start sequence of commutations to drive a motor to reliably reach these higher speeds, the ideal commutation curve must be approximated very closely and accurately.
Additionally, a motor may fail to start and reach the critical BEMF speed on a first start-up attempt. Higher than normal drag may exist for the motor. For example, this higher drag may exist at cold temperatures at which motor grease has a higher viscosity. Higher drag may also happen when a motor has been sitting idle for long periods of time, allowing grease to accumulate rather than remaining distributed evenly around the motor bearings. Adapting the acceleration profile in this higher drag situation is therefore needed in order to start the motor.
Therefore, the present invention recognizes the need for consistently and reliably accelerating a motor from a stopped position to the speed at which self-commutation is able to be used. The present invention also recognizes the need for a commutation period determination that is able to accurately approximate both the first and second portions of the ideal commutation curve in order to control commutation of a motor. The accurate approximation of the commutation curve is especially needed when a BEMF detection circuit having low BEMF sensitivity is used when controlling motor commutation. The present invention further recognizes that the acceleration profile must be adapted for a motor having higher drag.
A system, method, and program product for operating a disk drive motor according to an exponentially decaying commutation curve are disclosed. A disk drive includes a motor, a spindle driven by the motor, one or more rotatable storage media coupled to the spindle, a motor driver circuit coupled to the motor, and a disk drive controller coupled to the motor driver and other disk drive components. The various components of the disk drive are controlled during operation by signals generated by the disk drive system controller. In particular, the disk drive controller can provide commutation timing signals to the motor driver that, in turn, drives the motor.
During the first part of motor start-up, the disk drive controller selects external commutation of the motor. Commutation values approximating the first portion of the ideal commutation curve are pre-defined and stored as a look-up table into a memory system. Commutation values approximating the second portion are derived from a linear equation having a slope based on an acceleration characteristic of the motor. If the motor fails to reach the critical BEMF speed, the slope is repeatedly decreased, as necessary, and commutation values are recalculated for this second portion of the commutation curve until the motor is started. Commutation values generated during both portions of the initial start sequence are used to externally control commutation of the motor. After the motor reaches the critical BEMF speed at which the back-electromotive force is high enough for self-commutation to work properly, internal commutation or self-commutation of the motor is used to commutate the motor.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.